项目流程
项目分多人，多角色
项目分多阶段
项目需要计划执行

大厂待过，项目流程，技术相符
？
真正的参与个实际项目（不是个人项目，毕业项目）
你能真正解决项目中的问题
作为一个项目负责人，能否承担一个项目（对于这个项目是负责开发者）

项目开发中
PM想要在开发过程中增加需求怎么办？
项目延期怎么办？
如何保质保量完成项目？

如何讲解
项目中的所有角色
项目的全流程
各阶段常见问题
（背诵没有用）

项目中的所有角色
PM 产品经理 （原型图）图和线框
UE 视觉设计师 视觉设计图（UE和PM可能一个人）（前端学会切图）
FE 前端工程师
RD 后端工程师
CRD 移动开发工程师 （前端开发的页面放到客户端webview里面）（clientRD）
QA 测试工程师（前端所有的功能提测，测完才能上线）

微信文章里面有图CRD提供的（图放大）


完整的项目流程
各角色          UE FE RD CRD         FE          FE RD CRD     FE QA     FE  

需求分析        技术方案设计        开发        联调           测试     上线


产品写完了需求后，把所有的角色都叫再一起开个会  PM UE FE RD CRD （客户端） QA 测试重点  
可能会有问题， 修改，再需要分享，没有通过了

UE 视觉设计 技术同步进行
组件设计 state数据结构设计  
后端设计接口
客户端能力设计
接口和客户端能力的输入输出
数据的格式


开发FE 写代码


联调 需要接口，需要客户端能力，
先在本地环境调一调
把你的界面个视觉设计看，是否符合要求 （间距 颜色 宽高）
PM 参与  功能是否没有问题  符合预期

测试与QA为主 （RD CRD也会）
他们给我们提bug 我们去解决

上线 自己上线
如果有问题立马回滚
测试人员 再测试下 
同步给PM 验收

===================
需求分析
PM 拉了个需要的会，叫所有的角色都去开会
他讲需要
他说什么就做什么？很难都要必须实现？

需要人员，和开发本身就是一对矛盾体
他们认为越花哨越好，越符合他们的要求越好。 但是会带来一个成本，
每个都想把手机做成苹果，电脑都做成mac book（有些情况下就是加成本也做不了，公司没有那么大的预算，那么大的团队）
需要考虑实际情况

PM 倾向一个理想状态的，它想象，他画图
开发就是现实情况的陆地 考虑现实情况，工期，成本，考虑现实问题

前端需要
了解背景（PM要有说服力，我们必须要做这件事情，不做会落后，做了xxx）我们为什么要做

质疑需要是否合理（是否符合我们的产品，说什么就做什么PM不靠谱，你花一个月
时间做下俩，客户不买账，不得下线功能或者修改功能 ，领导会为你这一个月的工作量给你加分吗）

需求是否闭环 （app评论点赞，点赞后是不是还有按点赞排列）
（分享就结束吗？用户回到App，统计）

开发难度如果（加个很复杂的动画，性能不高，动画是否用原生app做，不用一鼓掌你答应了，确定了你不做，或者做不出来是你的问题‘）
你的需求改一点点，对需要影响不大，对于开发来能节省很大的开发成本，对公司来说是非常好的

是否需要其他支持 ，是否需求其它支持（分享，硬件信息，硬件功能）
等用到了才去提那就不是一回事了（我做不了，我需要客户端支持，可能他的排期已经被其他项目占据了
到时候还是自己的郭）

不要急于给排期（我明天给你，本周末给你，开完会立马定时不靠谱的）
排期要看自己的一个实际情况（领导是否安排其他活，下周是否有其他的活）
（和老员工商量排期是否合理，要看怎么部门的安排


==========技术方案设计
1. 求简，不过度设计
（新的框架，新的技术我们用下，我们要从为了节省项目开发成，减少出错，
不要为了设计而设计，为了技术和技术，看似厉害）
（前端路由可以用hash 也可以h5history方式你就用hash就可以）(服务支持)
2. 产出文档，要有文档，图，描述，怕眼高手低，
  （很简单，写文档 ，半小时，2个小时才能写完，说明项目不简单，
  你没有想明白呀，说明设计是有问题，带着问题去开发，后果更加严重）
  （项目半年，1年后你还记得吗）

3. 找准设计重点（组件设计，组件拆分，数据结构设计，对接）
   （和RD对接，接口文档，GET，POST 输入输出是什么都要写写出来）
   （CRD对接，要定义个客户端能力的文档，协议，输入，输出是什么）

4. 组内评审（要要文档）不要评审，你是资历最到，其他人能力都不如你
   组长，高级工程师，他们能看出是否合理，是否具有扩展性，是否具有安全
   隐患，是否具有新的问题（他们对公司环境比较熟悉，有很多现存的工具的使用
   自己做个工具，完全没有必要做轮子，节省评审）

5. 和RD 和CRD 沟通 

6. 发出会议结论（组内评审，沟通结果，QQ记录，邮件）（达成一致，三方一致，组内，这不是我的锅）



====开发 如何保证代码质量

1. 如何反馈排期
a 要留下空间 （一个月，你说5周，留1/4）考虑并行工作
b 考虑依赖（视觉图）（RD，CRD）看大家的排期决定自己的排期
C 如果大家的排期没有出来，可以给给工作量昨晚，至于什么时候开始
  什么时候结束
2. 符合开发规范
  不要为了省事，忽略开发规范
  git ，git分支规范
  注释的规范
  代码格式规范
  模块命名的规范

3. 写出开发文档
  如果你写的是公共的组件，如果别人会调用，一定要写好api
  代码库（代码，注释，文档是一体的）

4. 及时单元测试

5. mockAPI （mockjs proxy都可以）

6. code Review（代码走查）交给自己的同事，技术比你好，资历比你高
   帮你走查一遍看看代码有什么风险，不符合规范

===联调
和RD 和CRD进行技术联调 （接口能力联调）
UE确定视觉效果（拿很多手机扫一扫，看界面有没有问题）
让PM确定产品功能
（不叫他们，测试，上线后，你看这个地方颜色不对 这不是我像要功能，需要回滚）

PM拿到真实的项目，他有可能脑洞打开，有可能否定自己之前的想法
需要增加一些新需求（理解，这是个很常见事情,你是可以）

1.  不能拒绝，走需要变更流程计课
 （你无权拒绝，不一个领导，）
2. 如果公司有规定，按规定走
3. 否则 发起项目组和leader'的评审，重新评估排期
（你的让你的leader 和我的leader都知道，他们同意了，）多开发两天
（非常少，发给邮件，在项目群里面说下）

=============测试
主要配合修改
1. 发起提测邮件，抄送项目组（PM来发，前端，后端分开发）
提测是个很重要时间点

2. 测试问题要详细记录（不能他说一个我改一个，聊完天）
（最少有个excel表格，描述，详情，截图，让开发人员）在线最后

3. 有问题及时沟通，QA和FE天生信息不对称  （想法和思维就不一样）
（他们工作就是找问题，你总觉得自己代码没有问题）


我的电脑没有问题
1. 不要说这句话（已经测出来，你的程序必须满足用户）
2. 当面讨论，让QA帮你复现
3. 如果需要特定的设备，让Qa提供（安卓系统，xxx浏览器）你在设备上调试
   改问题就Ok


===上线
1. 上线后及时通知QA回归测试（你不通知他也会盯着）
2. 上线后及时同步给PM和项目组（他比你还关心）
3 如果有问题，及时回滚，先线上ok，再排查问题（不要砸线上排查问题）


项目沟通
1. 多人协作，沟通是最重要的，
（沟通比你写文档 ，技术设计，写代码都重要）
2. 每日一沟通（站会），有事说事，无事报平安（更可以临时沟通）
（我明天要请假）
3. 及时识别风险，及时汇报（不要等到发生后说）
（明天要做页面，今天还没出来设计图，我的可能要延期）
（设计肯定要站出来说欧文xxx干完，我确实有些事情，看看能不能延期下）
（项目要提测了你提测不了，你说是设计给你稿晚了--问题就在于你了）
（加班，我给你加个人 ，我时间还有，延两天）



 













